package com.topten.basicas.seguranca;

import java.util.List;

import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

import com.topten.basicas.comum.ObjetoGeral;
import com.topten.basicas.comum.Situacao;
@Entity
@Table(name="TB_Usuario")
@NamedQuery(name="fazerLogin", query="Select u from Usuario u where u.login = :log and u.senhaAtual = :sen")
public class Usuario extends ObjetoGeral {
	
	public Usuario(){
		
		perfil = new Perfil();
		
	}

	@Column(length=30, nullable=false, unique=true)
	private String login;
	@Column(length=12,nullable=false)
	private String senhaAtual;
	@ElementCollection
	@CollectionTable(name="TB_UltimasSenhas", joinColumns=@JoinColumn(name="id_usuario")) @Column(name="ultimas_senhas")
	private List<String> ultimasSenhas;
	@Enumerated(EnumType.STRING) @Column(name="situacao_senha", nullable=false)
	private SituacaoSenha situacaoSenha;
	@ManyToOne @JoinColumn(name="perfil_id", nullable=false)
	private Perfil perfil;
	
		
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenhaAtual() {
		return senhaAtual;
	}
	public void setSenhaAtual(String senhaAtual) {
		this.senhaAtual = senhaAtual;
	}
	public List<String> getUltimasSenhas() {
		return ultimasSenhas;
	}
	public void setUltimasSenhas(List<String> ultimasSenhas) {
		this.ultimasSenhas = ultimasSenhas;
	}
	
	public Perfil getPerfil() {
		return perfil;
	}
	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}
	public SituacaoSenha getSituacaoSenha() {
		return situacaoSenha;
	}
	public void setSituacaoSenha(SituacaoSenha situacaoSenha) {
		this.situacaoSenha = situacaoSenha;
	}
	
}
